Technical Field
The present invention relates to swapping memory buffers, and more particularly, to swapping pinned memory buffers in manycore systems.
Description of the Related Art
A programming model used for manycore coprocessors (e.g., Intel Xeon Phi manycore coprocessors), is an offload model, in which functions suitable to be executed on a manycore coprocessor (e.g., Intel Xeon Phi manycore coprocessor) are executed by the coprocessor, while the remaining functions are computed on a host central processing unit (CPU). The functions computed by the coprocessor may be called “offload” functions. The input and output data of an offload function may be transferred to and from the coprocessor through a Peripheral Component Interconnect Express (PCIe) Bus. To facilitate the data transfer, the data is stored in pinned memory pages on the coprocessor, and thus cannot be swapped out to the host memory during the lifetime of the offload process by an operating system (OS) (e.g., Xeon Phi's OS).